package com.produtos;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;

import android.os.Bundle;
import android.app.ListActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

// Esta Activity e a Lista De Compras!
public class ListaPreodutos extends ListActivity  {

	private DBAdapter datasource;
	private Button adicionarProdutos;
	private TextView total;
	private float totalf, calc;
	
	
	NumberFormat formato5 = new DecimalFormat(".##");
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_lista_preodutos);
		
		adicionarProdutos = (Button) findViewById(R.id.btnCompra);
		total = (TextView) findViewById(R.id.textViewTotal);
		
		adicionarProdutos.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View arg0) {
				Intent intent =  new Intent(ListaPreodutos.this , ProdutosActivity.class);
				startActivity(intent);
				
			}
		});
		
		datasource = new DBAdapter(this);
		datasource.open();
		List<Produto> produtos = datasource.getTodosElementosDaLista();
		
		for(Produto p : produtos){
			calc = p.getPreco()*p.getQtd();
			totalf += calc;
		}
		
		datasource.close();

		total.setText("" + formato5.format(totalf));
		
		
		ArrayAdapter<Produto> adaptador = new ArrayAdapter<Produto>(this, android.R.layout.simple_list_item_checked, produtos); 
		this.setListAdapter(adaptador);
		this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
		
		
		Toast.makeText(this, "Toque rapidamente em um item " + "para marca-lo. Toque novamente para exclui-lo.", Toast.LENGTH_LONG).show();
		
	}
	
	@Override
	protected void onListItemClick(ListView l, View v,int position, long id) {
		if (!l.getCheckedItemPositions().get(position)) {
			ArrayAdapter<Produto> adaptador = (ArrayAdapter<Produto>)this.getListAdapter();
			Produto i = adaptador.getItem(position); 
			datasource.open();
			datasource.ExcluirProdutoListaDeCompras(i.getId());
			datasource.close();
			adaptador.remove(i); 
			totalf = totalf - (i.getPreco()*i.getQtd());
			total.setText(""+ formato5.format(totalf));
			adaptador.notifyDataSetChanged();

		}
	}
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.lista_preodutos, menu);
		return true;
	}

	
}
